home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Network Supervisor's Toolkit
/
Network Supervisor's Toolkit.iso
/
novell
/
nw386
/
volume-3.386
< prev
Wrap
Text File
|
1996-07-10
|
12KB
|
270 lines
Chapter 3
Volumes and Hard Disks
The hard disk on a NetWare 386 server can be divided into
volumes, partitions, and segments. This section discusses
these divisions and the organization and format for
NetWare 386 hard disks. It includes the following
sections:
■ Volumes
■ Disk Partitions
■ Disk I/O
■ Disk Allocation Blocks
■ FATs and Turbo FATs
■ Total Storage Capacity
Volumes
A NetWare 386 server supports up to 32 NetWare volumes.
A NetWare volume is a logical entity composed of at least
one 1 or as many as 32 segments. Each segment can consume
an entire hard disk or only a fraction of a hard disk,
but it does not span hard disks. Since one NetWare 386
volume could be as large as 32 hard disks, a server could
be configured with one large volume (32 hard disks), each
hard disk a segment in the volume.
The size of a NetWare 386 volume can be increased simply
by adding another hard disk to the server, setting up a
NetWare partition on the disk, and creating a new volume
segment, which is part of the existing volume. This can
be done while the server is running and while the volume
is mounted and being accessed. A volume name consists of
one byte indicating the length of the name, followed by
1 to 15 characters for a possible total of 16 bytes.Disk Partitions
Server hard disks are divided into units called
partitions. A hard disk used to boot the machine would
likely contain a DOS partition (the active partition) and
a NetWare partition. The DOS partition allows the server
to boot DOS before booting the NetWare operating system.
Each of the other disks would likely contain only a
NetWare partition.
NetWare partitions are physically divided into a Hot Fix
Redirection Area and usable space on the remainder of the
partition. The NetWare partition contains four copies of
a Volume Definition Table. These copies are located at
sectors 32, 64, 96, and 128. This 512-byte table
describes the rest of the partition, from sector 160 to
the end. The rest of the partition consists of one to
eight volume segments. Each segment can belong to a
different volume.
Disk I/O
To provide disk I/O efficiency, NetWare 386 supports
elevator seeking, a technique used to organize and
process disk read/write requests. Each disk driver
maintains two queues (call them "In" and "Out") in which
disk read/write requests are stored. Only one queue is
active at a time. The requests have been positioned in
each queue based upon their position on the disk. For
example, if the "In" queue were active, the disk head
reads or writes jobs from that queue, and each successive
read or write moves the head closer to the center of the
disk.
Meanwhile, incoming read/write requests also fill the
"Out" queue. Then, as all requests from the "In" queue
are finished, the "Out" queue becomes active. The disk
head begins moving outward as it reads or writes requests
from the "Out" queue. By organizing disk head reads in
this manner, elevator seeking reduces disk head thrashing
and improves head seek times.
NetWare 386 v3.1 will further increase disk I/O
efficienty by supporting disconnect devices such as the
SCSI (Small Computer Systems Interface) Disconnect. On
previous NetWare servers, a device driver would initiate
an I/O process with a device and then wait. While the
driver waited, the device prepared for I/O and then
replied to the driver that it was ready to send or
receive data.With disconnect, the driver still sends a message
informing the device to prepare to receive or send data.
And, after preparing to receive or send, the device must
still send a message back to the driver to initiate disk
I/O. With driver disconnect, however, the driver does not
wait while the device prepares for I/O. Rather, the
driver initiates a similar I/O process with other
devices. Thus, driver disconnect, allows concurrent I/O
on multiple channels.
Because the server uses disk drivers to read and write
to hard disks, a server can only perform a certain number
of disk I/Os per second if a volume is contained entirely
on one hard disk. However, if the volume is scattered
over two, three, or four hard disks, the server can
perform two, three, or four times as many I/Os to the
volume per second. Also, when the server writes to a
volume, it scatters data evenly across all the segments
of a volume, ensuring that all hard disks fill up at
roughly the same rate.
There is a trade-off, however. Since many of a volume's
files may be scattered over several volume segments (on
several hard disks), the failure of one hard disk could
damage many files. Because of this, all hard disks
(especially those containing only part of a volume)
should be mirrored.
Disk Allocation Blocks
Volumes store data in units called disk allocation blocks
which come in five sizes: 4KB, 8KB, 16KB, 32KB, and
64KB. The size is configured when the volume is added to
the server. Disk allocation block sizes can vary from
volume to volume; however, one volume can have only one
block size. A disk allocation block represents the
smallest file size for that volume.
For example, suppose the disk allocation block size for
a volume is configured at 4KB. Whether a file is 1,247
bytes or 3,982 bytes, the file requires one 4KB block of
disk space. And, whether a file is 5,782 bytes or 7,891
bytes, the file would require two 4KB blocks of disk
space. Thus, to achieve optimum efficiency, you must
consider the size of files or data bases that your
applications access. Applications that access volumes on
which large files or data bases are stored would
certainly want to configure larger disk allocation blocks
for that particular volume. At the same time, smaller
disk allocation blocks might be more ideal for another
volume.File Allocation Tables (FATs)
Each volume contains a file called the File Allocation
Table (FAT). The FAT is an index to one or more disk
allocation blocks in which a file is located. The entire
FAT is cached in server memory allowing the server to
quickly access any disk allocation block of data in the
volume. Because one file may be in any number of disk
allocation blocks spread over the disk, the FAT links
the file together.
For example, file Y has a FAT index number stored in the
Directory Entry for file Y. This FAT index number points
to a FAT entry which contains two pointers:
■ A pointer to a disk allocation block occupied by a
part of file Y
■ A pointer to a subsequent FAT entry
The subsequent FAT entry also contains two pointers, one
to another disk allocation block occupied by another part
of file Y, and one to another FAT entry. And so on, until
the last FAT entry points to an End of File (EOF). Since
a large file can be located in a number of disk
allocation blocks scattered over the disk, the FAT
entries link themselves and the disk allocation blocks
together in this way.
In the illustration on the next page, the FAT index
number stored in the Directory Entry for file Y tells
NetWare that file Y begins at FAT entry number 6. FAT
entry number 6 contains a pointer to a disk allocation
block that contains the beginning of file Y. FAT entry
number 6 also contains a pointer to the next FAT entry,
entry number 4.
Turbo-File Allocation Table (Turbo-FAT)
When the FAT reaches its 64th entry, NetWare allows you
to bypass scanning the FAT and access files more quickly
using a Turbo-File Allocation Table (Turbo-FAT). A Turbo-
FAT exists for each file large enough to require 64 or
more FAT entries. For example, if you wanted to access
information from the 11th disk allocation block, NetWare
could go directly to file Y's Turbo-FAT and, without
scanning, know that it needs to access the 4th entry in
the Turbo-FAT.The Turbo FAT assembles into one table the index to every
disk allocation block in which a portion of a particular
file exists. If a file takes up more than 64 disk
allocation blocks (scattered over the disk), NetWare can
simply go to the Turbo-FAT where pointers to those disk
allocation blocks are assembled. Thus NetWare does not
need to scan every entry of the FAT searching for
pointers to those disk allocation blocks.
When the number of disk allocation blocks exceeds 1024,
every other disk allocation block is entered into the
Turbo-FAT rather than every block.
Hard Disk
Volume Containing FAT Turbo FAT Turbo FAT
Files X & Y for X for Y
FAT
Entry #
┌───────┐ ┌────┬────┐ ┌────┐ ┌────┐
0 │ 1st X│ <───■0 │ │ 2│ │ 0│ │ 6│
├───────┤ ├────┼────┤ ├────┤ ├────┤
1 │ │ <───■1 │ │ │ │ 2│ │ 4│
├───────┤ ├────┼────┤ ├────┤ ├────┤
2 │ 2nd X│ <───■2 │ │ 5│ │ 5│ │ 9│
├───────┤ ├────┼────┤ ├────┤ ├────┤
3 │ 4th X│ <───■3 │ │ 7│ │ 3│ │ 11│
├───────┤ ├────┼────┤ ├────┤ ├────┤
4 │ 2nd Y│ <───■4 │ │ 9│ │ 7│ │ 12│
├───────┤ ├────┼────┤ ├────┤ ├────┤
5 │ 3rd X│ <───■5 │ │ 3│ │ 8│ │ 13│
├───────┤ ├────┼────┤ ├────┤ ├────┤
6 │ 1st Y│ <───■6 │ │ 4│ │ │ │ 15│
├───────┤ ├────┼────┤ ├────┤ ├────┤
7 │ 5th X│ <───■7 │ │ 8│ │ │ │ │
├───────┤ ├────┴────┤ ├────┤ ├────┤
8 │ 6th X│ <───■8 │ eof (X)│ │ │ │ │
├───────┤ ├────┬────┤ ├────┤ ├────┤
9 │ 3rd Y│ <───■9 │ │ 11│ │ │ │ │
├───────┤ ├────┼────┤ ├────┤ ├────┤
10 │ │ <──■10 │ │ │ │ │ │ │
├───────┤ ├────┼────┤ ├────┤ ├────┤
11 │ 4th Y│ <──■11 │ │ 12│ │ │ │ │
├───────┤ ├────┼────┤ ├────┤ ├────┤
12 │ 5th Y│ <──■12 │ │ 13│ │ │ │ │
├───────┤ ├────┼────┤ ├────┤ ├────┤
13 │ 6th Y│ <──■13 │ │ 15│ │ │ │ │
├───────┤ ├────┼────┤ ├────┤ ├────┤
14 │ │ <──■14 │ │ │ │ │ │ │
├───────┤ ├────┴────┤ ├────┤ ├────┤
15 │ 7th Y│ <──■15 │ eof (Y)│ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
└───────┘ └─────────┘ └────┘ └────┘ Total Storage Capacity
Total disk storage on the NetWare 386 machine is
determined by three factors:
■ Size of a FAT entry is 8 bytes
■ 386 CPU can address up to 4GB of RAM
■ Largest disk allocation block is 64KB
Theoretically, a server can cache up to 536,870,912 FAT
entries. This value is determined by dividing 4GB of
total memory by 8 bytes per FAT entry. If each FAT entry
indexes one 64KB disk allocation block, the server could
access 32 terabytes (TB) of disk storage. Thirty-two
terabytes is more than 35 trillion bytes of disk storage.
To utilize all this disk storage capacity, a server would
require more than 220,000 155-MB hard disks. (NetWare 386
v3.0 actually supports up to 1024 hard disks, 32 volumes
x 32 volume segments per volume.)